// promisify : 把nodejs里的异步操作变成promise调用形式；
const fs = require("fs");

// 三 、实现一个promisify；
function myPromisify(func) {
  return function (...args) {
    return new Promise((resolve, reject) => {
      func(...args, function (err, data) {
        if (err) {
          reject(err);
          return console.log(err);
        }
        //  判断data是否有 如果有就通过promise里的resolve返还出去，如果没有就不返还
        if (typeof data !== "undefined") {
          resolve(data);
        } else {
          resolve();
        }
      });
    });
  };
}

// 文件读取
// let p =  myPromisify(fs.readFile)("./1.txt")
// p.then(res=>{
//     console.log(res.toString());
// },err=>{
//     console.log(err);
// })

let p = myPromisify(fs.writeFile)("./1.txt", "我是1.txt");
p.then(
  () => {
    console.log("写入成功");
  },
  (err) => {
    console.log(err);
  }
);
